import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'
import { unstableSetRender } from 'antd-mobile' // React 19 兼容性配置
import './index.css'
import App from './App.tsx'

// React 19 兼容性配置 - 修复 antd-mobile 的 Toast 等组件渲染问题
unstableSetRender((node, container) => {
  // 为每个容器创建或复用 React root
  // 使用类型断言来扩展container的类型
  const containerWithRoot = container as typeof container & { _reactRoot?: ReturnType<typeof createRoot> };
  
  if (!containerWithRoot._reactRoot) {
    containerWithRoot._reactRoot = createRoot(container);
  }
  const root = containerWithRoot._reactRoot;
  
  // 渲染组件
  root.render(node);
  
  // 返回卸载函数
  return async () => {
    await new Promise((resolve) => setTimeout(resolve, 0));
    root.unmount();
  };
});

createRoot(document.getElementById('root')!).render(
  <StrictMode>
    <App />
  </StrictMode>,
)
